Bugs?: If you find a problem with this file, send the file and version
information (from above) and the problem description to:
Internet: apple.bugs@applelink.apple.com
AppleLink: APPLE.BUGS
*/
#ifndef __AVCOMPONENTS__
#define __AVCOMPONENTS__
#ifndef __DIALOGS__
#include <Dialogs.h>
#endif
#ifndef __VIDEO__
#include <Video.h>
#endif
#ifndef __DISPLAYS__
#include <Displays.h>
#endif
#ifndef __COMPONENTS__
#include <Components.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
#if PRAGMA_IMPORT_SUPPORTED
#pragma import on
#endif
#if PRAGMA_ALIGN_SUPPORTED
#pragma options align=mac68k
#endif
#ifndef FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
#define FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE 1
#endif
#if FOR_SYSTEM7_AND_SYSTEM8_COOPERATIVE
/*
The subtypes listed here are for example only. The display manager will find _all_ panels
with the appropriate types. These panels return class information that is used to devide them
up into groups to be displayed in the AV Windows (class means "geometry" or "color" or other groupings
like that.
*/
enum {
kAVPanelType = 'avpc', /* Panel subtypes */
kBrightnessPanelSubType = 'brit',
kContrastPanelSubType = 'cont',
kBitDepthPanelSubType = 'bitd',
kAVEngineType = 'avec', /* Engine subtypes */
kBrightnessEngineSubType = 'brit',
kContrastEngineSubType = 'cont', /* kBitDepthEngineSubType = 'bitd', // Not used */
kAVPortType = 'avdp' /*subtypes are defined in each port's public .h file*/
};
/*
PortComponent subtypes are up to the port and display manager does not use the subtype
to find port components. Instead, display manager uses an internal cache to search for portcompoennts.
It turns out to be useful to have a unique subtype so that engines can see if they should apply themselves to
a particular port component.
PortKinds are the "class" of port. When a port is registered with display manager (creating a display ID), the
caller of DMNewDisplayIDByPortComponent passes a portKind. Ports of this type are returned by
DMNewDevicePortList.
PortKinds are NOT subtypes of components
PortKinds ARE used to register and find port components with Display Manager. Here are the basic port kinds:
Video displays are distinct from video out because there are some video out ports that are not actaully displays.
if EZAV is looking to configure displays, it needs to look for kAVVideoDisplayPortKind not kAVVideoOutPortKind.
*/
enum {
kAVVideoDisplayPortKind = 'pkdo', /* Video Display (CRT or panel display) */
kAVVideoOutPortKind = 'pkvo', /* Video out port (camera output). */
kAVVideoInPortKind = 'pkvi', /* Video in port (camera input) */
kAVSoundOutPortKind = 'pkso', /* Sound out port (speaker or speaker jack) */
kAVSoundInPortKind = 'pksi', /* Sound in port (microphone or microphone jack) */
kAVDeviceType = 'avdc', /* Device Component subtypes are up to the manufacturor since each device may contain multiple function types (eg telecaster) */
kAVPortGetAVDeviceFidelity = kBaseAVComponentSelector, /* Port Standard Component selectors */
kAVPortGetWiggle = 257,
kAVPortSetWiggle = 258,
kAVPortGetName = 259,
kAVPortGetGraphicInfo = 260,
kAVPortSetActive = 261,
kAVPortGetActive = 262,
kAVPortUnsed1 = 263, /* Selector removed as part of API change. We don't want to mess up the following selectors, so we put in this spacer (ie kPadSelector). */
kAVPortGetAVID = 264,
kAVPortSetAVID = 265,
kAVPortSetDeviceAVID = 266, /* For registrar to set device (instead of hitting global directly) -- should only be called once */
kAVPortGetDeviceAVID = 267, /* Called by display mgr for generic ports */
kAVPortGetPowerState = 268,
kAVPortSetPowerState = 269
};
/* ============================= */
/* Device Component Standard Component selectors */
/* ============================= */
enum {
kAVDeviceGetName = kBaseAVComponentSelector,
kAVDeviceGetGraphicInfo = 257,
kAVDeviceGetPowerState = 258,
kAVDeviceSetPowerState = 259,
kAVDeviceGetAVID = 260, /* Not yet implemented*/
kAVDeviceSetAVID = 261 /* For registrar to set AVID (should be called only once)*/